public class test2 {
    // https://leetcode.cn/problems/swap-nodes-in-pairs/submissions/679924636/
//    public ListNode swapPairs(ListNode head) {
//        if(head==null || head.next==null) return head;// 一个节点直接返回
//        ListNode newhead=new ListNode(-1);// 虚拟头结点
//        newhead.next=head;
//        ListNode prev=newhead;
//        ListNode cur=newhead.next;
//        ListNode next=cur.next;
//        ListNode nnext=next.next;
//        while(cur!=null && next!=null) {
//            // 交换逻辑
//            prev.next=next;
//            cur.next=nnext;
//            next.next=cur;
//            // 重新定位逻辑
//            prev=cur;// prev是不可能为空的,因为prev的位置就是前一次交换的cur的位置
//            cur=prev.next;// cur可能为空,可能不为空,不会nullPointerException
//            if(cur!=null) next=cur.next;// next可能NullPointerException,需要判断
//            if(next!=null) nnext=next.next;// next可能NullPointerException,需要判断
//        }
//        return newhead.next;
//    }

}
